package com.lcx.movie.controller;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.lcx.movie.common.Rep;
import com.lcx.movie.entity.Snacks;
import com.lcx.movie.service.SnacksService;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
 * @author 李丽君
 * @version 1.0
 * @Description 零食控制类
 * @date 2025/3/12 14:57
 */
@RestController
@CrossOrigin(origins = "*")
public class SnacksController {
    @Autowired
    private SnacksService snacksService;

    /**
     * 查询所有零食
     * @return 零食集合
     */
    @GetMapping("/selectAllSnacks")
    public Rep selectAllSnacks(){
        List<Snacks> snacksList = this.snacksService.selectAllSnacks();
        return new Rep().addData("snacksList", snacksList);
    }
    /**
     * 根据零食名字查询零食
     * @param snackName 零食名
     * @return 零食集合
     */
    @GetMapping("/selectSnacksBySnackName")
    public Rep selectSnacksBySnackName(@Param("page") Integer page, @Param("pageSize") Integer pageSize
            , @Param("snackName") String snackName){
        // 开启分页
        PageHelper.startPage(page,pageSize);
        // 执行查询
        List<Snacks> snacksList = snacksService.selectSnacksBySnackName(snackName);
        // 创建分页对象
        PageInfo<Snacks> snacksPageInfo=new PageInfo<>(snacksList);
        // 返回
        return new Rep().addData("snacksPageInfo", snacksPageInfo);
    }
    /**
     * 新增零食
     * @param snacks 零食实体
     * @return 受影响的行数
     */
    /** * 新增零食 * @param snacks 零食实体 * @return 受影响的行数 */
    @PostMapping("/insertSnacks")
    public String insertSnacks(Snacks snacks) {
        int insertSnacks = snacksService.insertSnacks(snacks);
        if (insertSnacks>0){
            return "Insert Success";
        }else {
            return "Insert Fail";
        }
    }
    /**
     * 修改零食
     * @param snacks 零食实体
     * @return 受影响的行数
     */
    @PostMapping("/updateSnacks")
    public String updateSnacks(Snacks snacks){
        int updateSnacks = snacksService.updateSnackss(snacks);
        if (updateSnacks>0){
            return "Update Success";
        }else {
            return "Update Fail";
        }
    }

    /**
     * 删除零食
     * @param snackId 零食id
     * @return 受影响的行数
     */
    @GetMapping("/deleteSnacks")
    public String deleteSnacks(@Param("snackId") Integer snackId){
        int deleteSnacks = snacksService.deleteSnacks(snackId);
        if (deleteSnacks>0){
            return "Delete Success";
        }else {
            return "Delete Fail";
        }
    }
    /**
     * 根据影院id查询零食
     * @param cinemaId 影院id
     * @return 零食集合
     */
    @GetMapping("/selectSnacksByCinemaId")
    public Rep selectSnacksByCinemaId(@Param("page") Integer page, @Param("pageSize") Integer pageSize,
                                               @Param("cinemaId") Integer cinemaId){
        // 开启分页
        PageHelper.startPage(page,pageSize);
        // 执行查询
        List<Snacks> snacksByCinemaId = snacksService.selectSnacksByCinemaId(cinemaId);
        // 创建分页对象
        PageInfo<Snacks> snacksPageInfo=new PageInfo<>(snacksByCinemaId);
        // 返回
        return new Rep().addData("snacksPageInfo", snacksPageInfo);
    }


}
